mysql新建分区设置阈值(less than)引发的问题 您所在的位置:网站首页 less than less mysql新建分区设置阈值(less than)引发的问题

mysql新建分区设置阈值(less than)引发的问题

2024-01-24 23:22| 来源: 网络整理| 查看: 265

mysql新建分表后,入库之前分表区间的数据,但是再分表中查询不到对应数据。

文章目录 问题背景问题解析新建分区sql查看分区查询数据查询数据所在分区 修改方案总结LESS THAN相关sql查询分区删除分区先建分区

问题背景

初始化表的时候,先建的日期分区分2022年的表,新的一年需要重新建分表。在执行脚本后,建了2023年的12个分区。新增了1月份的数据后,入库成功,主表添加日期筛选可以查询全部数据,在1月分表中查询为空。

问题解析 新建分区sql ALTER TABLE fact_task_analyst ADD PARTITION (PARTITION fact_task_analyst_202301 VALUES LESS THAN (20230101)); ALTER TABLE fact_task_analyst ADD PARTITION (PARTITION fact_task_analyst_202302 VALUES LESS THAN (20230201)); 查看分区 SELECT * from information_schema.PARTITIONS where table_schema = schema() and table_name = 'fact_task_analyst'

在这里插入图片描述

查询数据

查询主表数据通过分区主键查询可以查到全部数据 在这里插入图片描述 查询_202301分表数据是空的。 在这里插入图片描述

查询数据所在分区

使用EXPLAIN可以看到20230107的数据存在了202302的分分表,数量为124条。 在这里插入图片描述 然后去查了202302的分表依旧是空的。 在这里插入图片描述 所以猜想大概就是在建分区有问题。 重新查看了建分区sql。发下再给分区设置 less than的时候,202301分区设置的是20230101。 在这里插入图片描述

修改方案

把一月的分区的less than 改成20230201,改为一月的阈值。

ALTER TABLE fact_task_analyst ADD PARTITION (PARTITION fact_task_analyst_202301 VALUES LESS THAN (20230201)); ALTER TABLE fact_task_analyst ADD PARTITION (PARTITION fact_task_analyst_202302 VALUES LESS THAN (20230301));

重新插入数据后,通过分表可以查询出来。 在这里插入图片描述

总结 LESS THAN

VALUES LESS THAN 分区最大值( “



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有